Ext.define('PW.controller.CtrEmpresas', {
	extend: 'Ext.app.Controller',
	views: ['PW.view.papeis.Empresas',
	        'PW.view.papeis.MeusPapeis'],
	models: ['PW.model.Empresas',
	         'PW.model.MeusPapeis'],
	stores: ['PW.store.Empresas',
	         'PW.store.MeusPapeis'],
	
	init: function(){
		this.control({
        	'infoEmpresas':{
        		itemclick: this.comprarAcao
        	},
        	'meusPapeis':{
        		itemclick: this.venderAcao
        	}
		});
	},
	comprarAcao: function(view, item, html, rowIndex, event, eOpts){
		if(event.target.getAttribute('data-qtip') != 'Comprar') return;
		var msgSemFormatacao = 'Tem certeza que deseja comprar {0} a\u00e7\u00f5es da empresa {1}';
		var qtde = item.data.quantidade;
		var siglaEmpresa = item.data.sigla;
		var msg = Ext.String.format(msgSemFormatacao,qtde,siglaEmpresa);
		Ext.MessageBox.confirm('Compra', msg, function(){
			var qtde = item.data.quantidade;
			var idEmpresa = item.data.id_empresa;
			var idUsuario = PW.controller.VariaveisUteis.id_usuario;
			var cotacao = item.data.cotacao;
			var store = Ext.data.StoreManager.lookup('PW.store.Usuarios');
			if(store.data.items[0].data.valorAtual < qtde * cotacao){
				Ext.MessageBox.alert('Palpiteiro Alert!',
				'Saldo insuficiente!');
				return;
			}
			Ext.Ajax.request({
				url : 'PServlet',
				params : {
					action_id : 2,
					quantidade : qtde,
					id_empresa : idEmpresa,
					id_usuario : idUsuario,
					cotacao: cotacao
				},
				method: 'POST',
				success : function(response, opts) {
					var obj = Ext.decode(response.responseText);
					if(obj.success){
						item.data.qtde_maxima = item.data.qtde_maxima - obj.quantidade;
						item.data.quantidade = 0;
						view.refresh();
						store.data.items[0].data.valorAtual -= obj.quantidade * cotacao;
					}
				}
			});
		});
	},
	
	venderAcao: function(view, item, html, rowIndex, event, eOpts){
		if(event.target.getAttribute('data-qtip') != 'Vender') return;
		var msgSemFormatacao = 'Tem certeza que deseja vender {0} a\u00e7\u00f5es da empresa {1}';
		var qtde = item.data.qtde_venda;
		var siglaEmpresa = item.data.sigla;
		var msg = Ext.String.format(msgSemFormatacao,qtde,siglaEmpresa);
		Ext.MessageBox.confirm('Venda', msg, function(){
			var qtde = item.data.qtde_venda;
			var idMeusPapeis = item.data.id_meus_papeis;
			var cotacao = item.data.cotacao;
			Ext.Ajax.request({
				url : 'PServlet',
				params : {
					action_id : 3,
					quantidade : qtde,
					id_meus_papeis : idMeusPapeis,
					cotacao: cotacao
				},
				method: 'POST',
				success : function(response, opts) {
					var obj = Ext.decode(response.responseText);
					if(obj.success){
						item.data.quantidade = obj.quantidade;
						item.data.qtde_venda = 0;
						view.refresh();
						var store = Ext.data.StoreManager.lookup('PW.store.Usuarios');
						store.data.items[0].data.valorAtual += obj.quantidade * cotacao;
					}
				}
			});
		});
	}
});